package cn.nuc.edu.onlinestore.service.interfaces;

import java.util.List;

import cn.nuc.edu.onlinestore.entity.SysFunction;
import cn.nuc.edu.onlinestore.entity.Sysuser;
import cn.nuc.edu.onlinestore.util.PageControl;
import cn.nuc.edu.onlinestore.util.Pager;


/**
 * 用户的相关业务逻辑
 * @author 王凯
 *
 */
public interface IUserService {

	/**
	 * 用户登录验证
	 * @param user 用户信息（用户名和密码）
	 * @return 如果登录成功，返回登录用户的信息，否则返回空
	 */
	public Sysuser login(Sysuser user);
	
	/**
	 * 初始化用户的系统功能列表
	 * @param user 用户实体(携带角色id)
	 * @return 功能列表（只列出用户具有的功能）
	 */
	public List<SysFunction> initpage(Sysuser user);
	
	/**
	 * 修改用户密码
	 * @param oldpass 旧密码
	 * @param newpass 新密码
	 * @param userid 用户id
	 * @return 修改密码操作的结果,>0表示操作成功
	 */
	public Integer alterPassword(String oldpass, String newpass, Integer userid);
	
	/**
	 * 分页查询用户信息
	 * 
	 * @param pc 分页信息实体
	 * @param keyword 搜索关键字
	 * @return 携带查询结果和分页信息的实体
	 */
	public Pager<Sysuser> list(PageControl pc, String keyword);
	
	/**
	 * 获取用户的详细信息
	 * @param user 用户实体（只携带用户id）
	 * @return 用户的详细信息
	 */
	public Sysuser detail(Sysuser user);
	
	/**
	 * 编辑用户信息
	 * 
	 * @param user 已经修改好的信息
	 * @return 修改操作受影响的行数，>0表示修改成功
	 */
	public Integer edit(Sysuser user);
	
	/**
	 * 添加用户
	 * @param user 用户实体
	 * @return 执行插入操作受影响的行数,>0表示增加操作成功
	 */
	public Integer add(Sysuser user);
	
	/**
	 * 账户充值
	 * @param userid
	 * @param charge
	 * @return
	 */
	public Integer accountCharge(Integer userid, Float charge);
}
